package com.example.sandbox.controller.order.model;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.Digits;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;

/**
 * @Author Lierbao
 * @Date 2024/6/14 11:52
 */

@Data
@ApiModel("巴西代付请求")
public class BrazilTransferOrderRequest extends DownStreamAbstractMchAppRQ {

    @NotBlank(message = "Merchant order number cannot be empty")//商户订单号 不能为空
    @Size(min = 1, max = 35, message = "The length of the merchant order number is 1-35")//商户订单号长度为 20～30
    @ApiModelProperty("商户订单号")
    private String mchOrderNo;

    @NotBlank(message = "The payment amount cannot be empty")//支付金额 不能为空
    @Min(value = 0, message = "Minimum amount 0")
    @Digits(integer = 10, fraction = 2, message = "The upper limit of integers is 10 digits, and the upper limit of decimals is 2 digits")
    @ApiModelProperty("支付金额")
    private String amount;

    @NotBlank(message = "The receiving account cannot be empty")//收款账号 不能为空
    @ApiModelProperty("收款账号 巴西 pixKey")
    private String accountNo;

    //    @NotBlank(message = "The transfer note information cannot be empty")//转账备注信息 不能为空
    @ApiModelProperty("转账备注信息")
    private String transferDesc;

    @ApiModelProperty("异步通知地址 支付结果异步回调URL,只有传了该值才会发起回调")
    private String notifyUrl;

    // ================= Gbpsd 新增 =================
    // identityType
    // identityNo
    // email
    // phone
    // accName

    // 需要填写,分为CPF, CNPJ, PHONE, EMAIL, EVP五种，需要让收款人自己选择这五种其中之一，选择对应类型acc_no则对应该类型出款账号

    @NotBlank
    @ApiModelProperty("出款类型")
    private String identityType;

    /**
     * 可选传递CPF号或不传递,如传递CPF号则会进行CPF校验，相当于身份ID,11位或14位
     */
//    @NotBlank(message = "name cannot be empty")//商品描述 不能为空
    @NotBlank
    @ApiModelProperty("身份证号/税号")
    private String identityNo;

    /**
     * 货币代码
     **/
    @NotBlank(message = "Currency code cannot be empty")
    private String currency;

//    /**
//     * 邮箱
//     */
////    @NotBlank(message = "email cannot be empty")//商品描述 不能为空
//    @ApiModelProperty("email")
//    private String email;
//
//    /**
//     * 纯数字，不需要添加区号
//     */
////    @NotBlank(message = "phone cannot be empty")//商品描述 不能为空
//    @ApiModelProperty("手机号")
//    private String phone;
//
////    @NotBlank(message = "phone cannot be empty")//商品描述 不能为空
//    @ApiModelProperty("姓名")
//    private String accountName;


}
